package com.example.eventreg.organizer;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.eventreg.security.JwtUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service//标记类为 Spring 的服务组件
public class OrganizerService {

    @Autowired
    private OrganizerMapper organizerMapper;  // MyBatis-Plus 自动注入 mapper

    @Autowired
    private JwtUtil jwtUtil;  // 注入 JwtUtil 工具类，用来生成 Token

    /**
     * 通过用户名或邮箱验证用户身份并生成 JWT Token
     * @param loginData 用户名或邮箱
     * @param password 用户密码
     * @return 生成的 JWT Token
     */
    public String authenticateOrganizer(String loginData, String password) {
        System.out.println(loginData+"     "+password);
        // 查询数据库中的用户，支持根据用户名或邮箱查询
        Organizer organizer = organizerMapper.selectOne(new QueryWrapper<Organizer>()
                .eq("oemail", loginData)
                .or()
                .eq("ophone", loginData)
                .or()
                .eq("oid", loginData));

        // 用户不存在或密码不匹配，抛出异常
        if (organizer == null) {
            throw new RuntimeException("用户不存在");
        }

        if (!password.equals(organizer.getPassword())) {
            throw new RuntimeException("密码错误");
        }
        // 用户认证通过，生成 JWT Token
        return jwtUtil.generateTokenO(organizer.getOid(),organizer.getOname());
    }
}